package com.abel.bigwater.dataserver.model.qdies

import com.abel.bigwater.dataserver.model.PacketCmdException
import io.netty.buffer.ByteBuf

/**
 * 查询信号强度
上位机发送： 帧头 地址 0x03 0x00 校验 帧尾
D10应答： 帧头 地址 0x03 0x01 信号强度值 校验 帧尾
(正常信号强度为0-31)
当未安装手机卡， 或手机卡损坏时， D10应答：
帧头 地址 0x03 0x01 0xCC 校验 帧尾
备注： 35秒内D10应该回复， 超过35秒上位机判断超时
 */
class DtenAskRssiData(_len: Int) : D10BaseData(_len) {
    override var type = FuncType.AskRssi

    var rssi: Short? = null

    override fun fill(buf: ByteBuf) {
        buf.writeByte(rssi!!.toInt())
    }

    override fun parse(buf: ByteBuf): Boolean {
        if (buf.readableBytes() < 1) {
            throw PacketCmdException("should contain 0xAA(success) or 0xCC(fail)")
        }
        rssi = buf.readUnsignedByte()

        return true
    }

    override fun count(): Int = 1
}